﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sistema.Dominio.ValidationAttribute
{
    class ColecaoValidatorAttribute : System.ComponentModel.DataAnnotations.ValidationAttribute 
    {
        public ColecaoValidatorAttribute(String mensagemErro)
            :base(mensagemErro)
        { }

        public ColecaoValidatorAttribute()
            : base("Colecao com dados invalidos.")
        { }

        public override bool IsValid(object value)
        {
            if (value == null) { return true; }
            foreach(object item in (value as System.Collections.IEnumerable))
            {
                if((item as EntidadeValidavel).IsValid)
                {
                    continue;
                }
                else
                {
                    return false;
                }
            }
            return true;
        }

        public override string FormatErrorMessage(string name)
        {
            return base.FormatErrorMessage(name);
        }
    }
}
